/*
 * Utworzono 2005-12-20
 */
package model.repository;

import java.util.Collection;
import java.util.List;
import java.util.Vector;

import model.uczenie.dane.AnalitykCech;

import org.apache.log4j.Logger;


/**
 * Abstrakcyjna klasa dostepu do danych.
 * Wszystkie klasy dostepu do danych powinny rozszerzac te klase.
 * 
 * @author nicos.karagieorgopulus
 * @author michal.stochmialek
 */
public abstract class PlikDao {
    
	static Logger logger = Logger.getLogger(AnalitykCech.class);

    /**
     * Zapisuje nowy obiekt do bazy danych. Uwaga: Lepiej uzywac metody
     * utworzObiekt {@link #utworzObiekt(Class)} lub pobierzObiektDoUtworzenieModyfikacja,
     * a nastepnie modyfikowac zwroconego klona.
     * 
     * @see #utworzObiekt(Class)
     * @see #utworzKlonDoUtworzenieModyfikacja(IBazaObiekt)
     */
    protected void zapiszObiektNowy(final Object obiekt){//throws CBazaDaoWyjatek {
    }

    /**
     * Usun obiekt z bazy danych. Usuniecie zostanie wykonane przy commicie.
     */
    protected void usunObiekt(final Object obiekt) {//throws CBazaDaoWyjatek {
    }

    /**
     * Usuwa liste obiektow z bazy danych.
     */
    protected void usunObiekty(final Collection<?> obiekty) {// throws CBazaDaoWyjatek {

    }


    
    /**
     * Wykonuje zapytanie wyszukujace liste obiektow.
     * @see #wykonajZapytanie(ReadAllQuery, Vector)
     */
    protected List<?> wykonajZapytanie() { //final ReadAllQuery zapytanie, final Map argumentyMap) {
//        Vector argumenty = this.utworzArgumenty(zapytanie, argumentyMap);
        return null;
//        		wykonajZapytanie(zapytanie, argumenty);
    }

   
    
    /**
     * Zwraca pierwszy obiekt z listy, nula jesli lista jest pusta, lub rzuca wyjatek CBazaNieprawidlowyRezultatDaoWyjatek
     * @param filtr
     */ 
    protected /*IBaza*/ Object znajdzObiekt() {//final ReadAllQuery zapytanie, final CSystemFiltr filtr) throws CBazaNieprawidlowyRezultatDaoWyjatek {
    	return null;
    }
    


  

    /**
     * Wyszukuje wszystkie obiekty dla zapytania
     * oraz filtruje, sortuje i stronicuje wg dostarczonego filtru.
     *   
     */
    protected List<?> znajdz() {//final ReadAllQuery zapytanie, final CSystemFiltr filtr, final boolean dodajDoTransakcji) {
    	return null;
    }


}
